// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/base/model/DeviceQueryReq'
import BaseClass from '@api/base/model/DeviceDto'
import PointClass from '@api/elemac/model/DeviceHospitalPointDto'
import state from '@admin/views/System/Map/MapPoint/store/state'
import API from './API'
import API_DETAIL from './API_DETAIL'
import API_MAP from './API_MAP'

const STATUS = CORE.DICT.STATUS_ONLINE_DEVICE

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    ...API,
    ...API_DETAIL,
    ...API_MAP,
  },

  /**
   * 映射
   */
  MAP: {
    ...state.MAP,

    WORD: '设备', // 词语
    DEL: '移除', // 删除

    COUNT: {}, // 状态计数
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS,

    /**
     * 是否删除
     */
    DELETE: [
      [0, '否', '', '灰'],
      [1, '是', '', '红'],
      [2, '否', '', '灰'],
      [3, '否', '', '灰'],
    ],
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, {
    statusArray: STATUS.map(([id]) => id),
    areaIdQueryType: 0, // 区域id查询类型，0默认查询本级及其下级物联设备，1-查询本级物联设备
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: {
    ...CORE.initObj(PointClass), // 点位请求体
    ...CORE.initObj(BaseClass), // 设备信息
    deviceGraphDto: [], // 系统图配置列表
    step: 1, // 新增的步数
    updateable: 2, // 同步时已导入设备更新属性，1-是，2-否
    addNum: 0, // 同步成功时新增的条数
    editNum: 0, // 同步成功时修改的条数
    tagIdList: [], // 标签 ID 列表

    isGraph: false, // 是否为系统图弹窗
  },
}
